<template>
    <div class="app-container">
        <el-row :gutter="20">
            <splitpanes :horizontal="this.$store.getters.device === 'mobile'" class="default-theme">
                <pane size="16">
                    <el-col>
                        <div class="head-container">
                            <el-input v-model="deptName" placeholder="请输入物品所属类别" clearable size="small"
                                prefix-icon="el-icon-search" style="margin-bottom: 20px" />
                        </div>
                        <div class="head-container">
                            <el-tree :data="parentAccountName" :props="defaultProps" auto-expand-parent
                                default-expand-all :expand-on-click-node="true" :filter-node-method="filterNode"
                                ref="tree" highlight-current @node-click="handleNodeClick" />
                        </div>
                    </el-col>
                </pane>
                <pane size="84">
                    <el-col>
                        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
                            <el-form-item label="类别代码" prop="类别代码">
                                <el-input v-model="queryParams.类别代码" placeholder="请输入类别代码" clearable
                                    @keyup.enter.native="handleQuery" />
                            </el-form-item>
                            <el-form-item label="名称" prop="名称">
                                <el-input v-model="queryParams.名称" placeholder="名称" clearable
                                    @keyup.enter.native="handleQuery" />
                            </el-form-item>
                              <el-form-item label="上级类别" prop="parentType">
                       <el-select v-model="queryParams.parentType" placeholder="请选择物品上级类别">
                         <el-option label="原料类" value="原料类"></el-option>
                         <el-option label="辅料类" value="辅料类"></el-option>
                         <el-option label="半成品类" value="半成品类"></el-option>
                         <el-option label="成品类" value="成品类"></el-option>
                         <el-option label="模具类" value="模具类"></el-option>
                         <el-option label="设备类" value="设备类"></el-option>
                         <el-option label="财务类" value="财务类"></el-option>
                         <el-option label="其它" value="其它"></el-option>
                        </el-select>
                     </el-form-item>
                            
                  <el-form-item label="类型">
                       <el-select v-model="queryParams.类型" placeholder="请选择物品类型">
                         <el-option label="花纸" value="花纸"></el-option>
                         <el-option label="纸箱" value="纸箱"></el-option>
                        </el-select>
                     </el-form-item>
                            <!-- <el-form-item label="类型" prop="类型">
                                <el-input v-model="queryParams.类型" placeholder="请输入类型" clearable
                                    @keyup.enter.native="handleQuery" />
                            </el-form-item> -->
                            <el-form-item>
                                <el-button type="primary" icon="el-icon-search" size="mini"
                                    @click="handleQuery">搜索</el-button>
                                <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
                            </el-form-item>
                        </el-form>

                        <el-row :gutter="10" class="mb8">
                            <el-col :span="1.5">
                                <el-button type="primary" plain icon="el-icon-plus" size="mini"
                                    @click="handleAdd">新增</el-button>
                            </el-col>
                            <!-- <el-col :span="1.5">
                                <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single"
                                    @click="handleUpdate">修改</el-button>
                            </el-col> -->
                            <el-col :span="1.5">
                                <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple"
                                    @click="handleDelete">删除</el-button>
                            </el-col>
                            <el-col :span="1.5">
                                <el-button type="warning" plain icon="el-icon-download" size="mini"
                                    @click="handleExport">导出</el-button>
                            </el-col>
                            <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
                        </el-row>

                        <el-table :data="detailedData" v-loading="loading" :row-class-name="rowClassName" @selection-change="handleSelectionChange">
                            <el-table-column type="selection" width="55" align="center" />

                            <el-table-column prop="id" align="center" label="类别代码" />
                            <el-table-column prop="name" align="center" label="名称" />
                            <el-table-column prop="parentType" align="center" label="上级类别" />
                            <el-table-column prop="attribute" align="center" label="类别属性" />
                            <el-table-column prop="type" align="center" label="类型" />

                            <el-table-column label="操作" align="center" width="150px" fixed="right">
                                <template slot-scope="scope">
                                    <el-button size="mini" type="text" icon="el-icon-edit"
                                        @click="handleUpdate(scope.row)">修改</el-button>
                                    <el-button size="mini" type="text" icon="el-icon-delete"
                                        @click="handleDelete(scope.row)">删除</el-button>
                                </template>
                            </el-table-column>
                        </el-table>

                        <pagination :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
                            @pagination="getList" />

                    </el-col>
                </pane>
            </splitpanes>
        </el-row>
        <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
            <el-form ref="form" :model="form" :rules="rules" label-width="100px">
                <el-row>
                    <!-- <el-col :span="8">
            <el-form-item label="类别" prop="类别">
              <el-select v-model="form.类别" style="width: 240px;" :disabled="isEdit">
                <el-option value="原料" label="原料" />
                <el-option value="辅料" label="辅料" />
                <el-option value="半成品" label="半成品" />
                <el-option value="成品" label="成品" />
                <el-option value="设备" label="设备" />
                <el-option value="模具" label="模具" />
                <el-option value="其他" label="其他" />
              </el-select>
            </el-form-item>
          </el-col>-->
                    <el-col :span="8">
                        <el-form-item label="类别代码" prop="id">
                            <el-input v-model="form.id" placeholder="请输入类别代码" />
                        </el-form-item>
                    </el-col>
                    <el-col :span="8">
                        <el-form-item label="名称" prop="name">
                            <el-input v-model="form.name" placeholder="请输入物品名称" />
                        </el-form-item>
                    </el-col>
                    <el-col :span="8">
                     <el-form-item label="上级类别" prop="parentType">
              <el-select v-model="form.parentType" placeholder="请选择上级类别">
                  <el-option label="原料类" value="原料类"></el-option>
                         <el-option label="辅料类" value="辅料类"></el-option>
                         <el-option label="半成品类" value="半成品类"></el-option>
                         <el-option label="成品类" value="成品类"></el-option>
                         <el-option label="模具类" value="模具类"></el-option>
                         <el-option label="设备类" value="设备类"></el-option>
                         <el-option label="财务类" value="财务类"></el-option>
                         <el-option label="其它" value="其它"></el-option>
            
              </el-select>
            </el-form-item>
            </el-col>
                   

                </el-row>

                <el-row>
                    <el-col :span="8">
                        <el-form-item label="类别属性" prop="attribute">
                            <el-input v-model="form.attribute" placeholder="请输入物品类别属性" />
                        </el-form-item>
                    </el-col>
                    <el-col :span="8">
                        <el-form-item label="类型" prop="type">
                           <el-select v-model="form.type" placeholder="请选择物品类型">
                             <el-option label="花纸" value="花纸"></el-option>
                            <el-option label="纸箱" value="纸箱"></el-option>
                          </el-select>
                </el-form-item>
                    </el-col>
                    
                </el-row>



            </el-form>
            <div slot="footer" class="dialog-footer">
                <el-button type="primary" @click="submitForm">确 定</el-button>
                <el-button @click="cancel">取 消</el-button>
            </div>
        </el-dialog>
    </div>
</template>

<script>
import { Splitpanes, Pane } from "splitpanes";
import "splitpanes/dist/splitpanes.css";
export default {
    components: { Splitpanes, Pane },
    data() {
        return {
            // 标题
            title: null,
            // 总条数
            total: 0,
            // 打开弹出框
            open: false,
            // 表格
            form: {},
            // 校验
            rules: {},

          

              detailedData: [{
            id: 10095,
            name: '红色花纸',
            parentType:'无',
            attribute:'原料',
            type: '花纸',
            
          }, {
              id: 10096,
              name: 'A1098纸箱',
              parentType: '无',
              attribute: '辅料',
              type: '纸箱',

            }, {
              id: 10096,
              name: 'A1099纸箱',
              parentType: '无',
              attribute: '辅料',
              type: '纸箱',

            }],
            parentAccountName: [{
                label: '物品类别列表',
                children: [{
                    label: '原料类'
                    // children: [{
                    //     label: '塑料原类供应商'
                    // }, {
                    //     label: '塑料色粉供应商'
                    // }, {
                    //     label: '密胺原料供应商'
                    // }, {
                    //     label: '密胺画纸供应商'
                    // }, {
                    //     label: '注塑画纸供应商'
                    // }]
                },{
                    label:'辅料类'
                    // children:[{
                    //     label:'纸箱供应商'
                    // },{
                    //     label:'条码供应商'
                    // },{
                    //     label:'胶带供应商'
                    // },{
                    //     label:'打包带供应商'
                    // }]
                },{
                    label:'半成品类'
                },{
                    label:'成品类'
                },{
                    label:'模具类'
                },{
                    label:'设备类'
                },{
                    label:'财务类'
                },{
                    label:'其它类'
                }]
            }],

            defaultProps: {
                children: 'children',
                label: 'label'
            },
            queryParams: {
                pageNum: 1,
                pageSize: 10,
            },
            showSearch: true,
            single: false,
            multiple: false,
            tableData: [],
            tableData1: [{
                label: '原材料',
                children: [{
                    编号: '0103010025',
                    代号: 'HZ-BF3064037',
                    品名: 'BF3064037花纸',
                    类别: '花纸',
                    主单位: '张',
                    副单位: '米',
                    转换率: '1:1',
                    货位: 'A1',
                    是否需要货位: '是',
                    ABC编码: 'A101',
                    批号: '20210101',
                    条形码: '123456789012',
                    来源: '自制',
                    是否管制: '否',
                    重量单位: '克',
                    单位重量: '1000',
                    体积单位: '立方米',
                    单位体积: '1',
                    保质天数: '30',
                    安全库存: '1000',
                    最小库存: '0',
                    最大库存: '100000',
                    最少库存金额: '0',
                    最大库存金额: '100000000',
                    税率: '0.13',
                    采购方式: '按单采购',
                    采购提前期: '1',
                    生产提前期: '1',
                    价格: '100',
                    状态: '正在使用',

                }, {
                    编号: '0103010026',
                    代号: 'HZ-BF3064038',
                    品名: 'BF3064038花纸',
                    类别: '花纸',
                    主单位: '张',
                    副单位: '米',
                    转换率: '1:1',
                    货位: 'A1',
                    是否需要货位: '是',
                    ABC编码: 'A101',
                    批号: '20210101',
                    条形码: '123456789012',
                    来源: '自制',
                    是否管制: '否',
                    重量单位: '克',
                    单位重量: '1000',
                    体积单位: '立方米',
                    单位体积: '1',
                    保质天数: '30',
                    安全库存: '1000',
                    最小库存: '0',
                    最大库存: '100000',
                    最少库存金额: '0',
                    最大库存金额: '100000000',
                    税率: '0.13',
                    采购方式: '按单采购',
                    采购提前期: '1',
                    生产提前期: '1',
                    价格: '100',
                    状态: '正在使用',
                }, {
                    编号: '0103010027',
                    代号: 'HZ-BF3064039',
                    品名: 'BF3064039花纸',
                    类别: '花纸',
                    主单位: '张',
                    副单位: '米',
                    转换率: '1:1',
                    货位: 'A1',
                    是否需要货位: '是',
                    ABC编码: 'A101',
                    批号: '20210101',
                    条形码: '123456789012',
                    来源: '自制',
                    是否管制: '否',
                    重量单位: '克',
                    单位重量: '1000',
                    体积单位: '立方米',
                    单位体积: '1',
                    保质天数: '30',
                    安全库存: '1000',
                    最小库存: '0',
                    最大库存: '100000',
                    最少库存金额: '0',
                    最大库存金额: '100000000',
                    税率: '0.13',
                    采购方式: '按单采购',
                    采购提前期: '1',
                    生产提前期: '1',
                    价格: '100',
                    状态: '正在使用',
                }]
            }, {
                label: '辅料类',
                children: [{
                    编号: '02032896',
                    代号: 'HZ-A101',
                    品名: 'BF325085胶带',
                    类别: '辅料',
                    主单位: '个',
                    副单位: '米',
                    转换率: '1:1',
                    货位: 'A1',
                    是否需要货位: '是',
                    ABC编码: 'A101',
                    批号: '20210101',
                    条形码: '123456789012',
                    来源: '自制',
                    是否管制: '否',
                    重量单位: '克',
                    单位重量: '1000',
                    体积单位: '立方米',
                    单位体积: '1',
                    保质天数: '30',
                    安全库存: '1000',
                    最小库存: '0',
                    最大库存: '100000',
                    最少库存金额: '0',
                    最大库存金额: '100000000',
                    税率: '0.13',
                    采购方式: '按单采购',
                    采购提前期: '1',
                    生产提前期: '1',
                    价格: '100',
                    状态: '正在使用',
                    包装数: '1000',
                    // 来源: '自制',
                }, {
                    编号: '02032897',
                    代号: 'HZ-A102',
                    品名: 'BF325086胶带',
                    类别: '辅料',
                    主单位: '个',
                    副单位: '米',
                    转换率: '1:1',
                    货位: 'A1',
                    是否需要货位: '是',
                    ABC编码: 'A101',
                    批号: '20210101',
                    条形码: '123456789012',
                    来源: '自制',
                    是否管制: '否',
                    重量单位: '克',
                    单位重量: '1000',
                    体积单位: '立方米',
                    单位体积: '1',
                    保质天数: '30',
                    安全库存: '1000',
                    最小库存: '0',
                    最大库存: '100000',
                    最少库存金额: '0',
                    最大库存金额: '100000000',
                    税率: '0.13',
                    采购方式: '按单采购',
                    采购提前期: '1',
                    生产提前期: '1',
                    价格: '100',
                    状态: '正在使用',
                    包装数: '1000',
                }, {
                    编号: '02032898',
                    代号: 'HZ-A103',
                    品名: 'BF325087胶带',
                    类别: '辅料',
                    主单位: '个',
                    副单位: '米',
                    转换率: '1:1',
                    货位: 'A1',
                    是否需要货位: '是',
                    ABC编码: 'A101',
                    批号: '20210101',
                    条形码: '123456789012',
                    来源: '自制',
                    是否管制: '否',
                    重量单位: '克',
                    单位重量: '1000',
                    体积单位: '立方米',
                    单位体积: '1',
                    保质天数: '30',
                    安全库存: '1000',
                    最小库存: '0',
                    最大库存: '100000',
                    最少库存金额: '0',
                    最大库存金额: '100000000',
                    税率: '0.13',
                    采购方式: '按单采购',
                    采购提前期: '1',
                    生产提前期: '1',
                    价格: '100',
                    状态: '正在使用',
                    包装数: '1000',
                }]
            }, {
                label: '半成品类',
                children: [{
                    编号: '03032896',
                    代号: 'HZ-A101',
                    品名: '汤碗',
                    类别: '半成品',
                    主单位: '个',
                    副单位: '米',
                    转换率: '1:1',
                    货位: 'A1',
                    是否需要货位: '是',
                    ABC编码: 'A101',
                    批号: '20210101',
                    条形码: '123456789012',
                    来源: '自制',
                    是否管制: '否',
                    重量单位: '克',
                    单位重量: '1000',
                    体积单位: '立方米',
                    单位体积: '1',
                    保质天数: '30',
                    安全库存: '1000',
                    最小库存: '0',
                    最大库存: '100000',
                    最少库存金额: '0',
                    最大库存金额: '100000000',
                    税率: '0.13',
                    采购方式: '按单采购',
                    采购提前期: '1',
                    生产提前期: '1',
                    价格: '100',
                    状态: '正在使用',
                    包装数: '1000',
                    // 来源: '自制',
                }, {
                    编号: '03032897',
                    代号: 'HZ-A102',
                    品名: '汤碗',
                    类别: '半成品',
                    主单位: '个',
                    副单位: '米',
                    转换率: '1:1',
                    货位: 'A1',
                    是否需要货位: '是',
                    ABC编码: 'A101',
                    批号: '20210101',
                    条形码: '123456789012',
                    来源: '自制',
                    是否管制: '否',
                    重量单位: '克',
                    单位重量: '1000',
                    体积单位: '立方米',
                    单位体积: '1',
                    保质天数: '30',
                    安全库存: '1000',
                    最小库存: '0',
                    最大库存: '100000',
                    最少库存金额: '0',
                    最大库存金额: '100000000',
                    税率: '0.13',
                    采购方式: '按单采购',
                    采购提前期: '1',
                    生产提前期: '1',
                    价格: '100',
                    状态: '正在使用',
                    包装数: '1000',
                }]
            },
            {
                label: '成品类'
            },
            {
                label: '其他类'
            },
            {
                label: '设备类'
            },
            {
                label: '模具类'
            }],
            loading: false,
            ids: [],
            isShow1: false,
            isShow2: false,
            isShow3: false,
            isShow4: false,
            isShow5: false,
            isShow6: false,
        }
    },
    mounted() {
        this.handleNodeClick(this.parentAccountName[0].children[0])
    },
    methods: {
        //显示高亮
        rowClassName({ row }) {
          return row.id === this.id ? 'selected-row' : ''; // 判断是否选中
        },
        filterNode(value, data) {
            if (!value) return true;
            return data.label.indexOf(value) !== -1;
        },
        handleNodeClick(data) {
            if (data.label === '原材料') {
                this.tableData = this.tableData1[0].children;
                this.isShow1 = false;
                this.isShow2 = false;
                this.isShow3 = false;
                this.isShow4 = false;
                this.isShow5 = false;
                this.isShow6 = false;
            } else if (data.label === '辅料类') {
                this.tableData = this.tableData1[1].children;
                this.isShow1 = false;
                this.isShow2 = false;
                this.isShow3 = false;
                this.isShow4 = true;
                this.isShow5 = false;
                this.isShow6 = false;
            } else if (data.label === '半成品类') {
                this.tableData = this.tableData1[2].children;
                this.isShow1 = false;
                this.isShow2 = true;
                this.isShow3 = false;
                this.isShow4 = false;
                this.isShow5 = false;
                this.isShow6 = false;
            } else if (data.label === '成品类') {
                this.tableData = this.tableData1[3].children;
                this.isShow1 = false;
                this.isShow2 = false;
                this.isShow3 = true;
                this.isShow4 = false;
                this.isShow5 = false;
                this.isShow6 = false;
            } else if (data.label === '其他类') {
                this.tableData = this.tableData1[4].children;
                this.isShow1 = false;
                this.isShow2 = false;
                this.isShow3 = false;
                this.isShow4 = true;
                this.isShow5 = false;
                this.isShow6 = false;
            } else if (data.label === '设备类') {
                this.tableData = this.tableData1[5].children;
                this.isShow1 = false;
                this.isShow2 = false;
                this.isShow3 = false;
                this.isShow4 = false;
                this.isShow5 = true;
                this.isShow6 = false;
            } else if (data.label === '模具类') {
                this.tableData = this.tableData1[6].children;
                this.isShow1 = false;
                this.isShow2 = false;
                this.isShow3 = false;
                this.isShow4 = false;
                this.isShow5 = false;
                this.isShow6 = true;
            }
        },
        submitForm() {
            this.open = false;
        },
        cancel() { this.open = false; },
        handleQuery() {
            this.loading = false;
        },
        resetQuery() {
        },
        handleAdd() {
            this.title = '新增物品信息'
            this.open = true;
            this.isEdit = false;
        },
        handleUpdate(row) {
            this.title = '编辑物品信息'
            this.open = true;
            this.isEdit = false;
            this.form = row;
        },
        handleDelete() { },
        handleExport() { },
        handleSelectionChange(selection) {
            this.ids = selection.map((item) => item.userId);
            this.single = selection.length !== 1;
            this.multiple = !selection.length;
        },
    },

}
</script>

<style>
.selected-row {
  background-color: yellow !important;
  /* 选中行的背景颜色 */
}
</style>
